home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / ilaenv.z / ilaenv
Text File  |  1996-03-14  |  5KB  |  133 lines

  1.  
  2.  
  3.  
  4. IIIILLLLAAAAEEEENNNNVVVV((((3333FFFF))))                                                          IIIILLLLAAAAEEEENNNNVVVV((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ILAENV - i called from the LAPACK routines to choose problem-dependent
  10.      parameters for the local environment
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      INTEGER FUNCTION ILAENV( ISPEC, NAME, OPTS, N1, N2, N3, N4 )
  14.  
  15.          CHARACTER*(  * ) NAME, OPTS
  16.  
  17.          INTEGER      ISPEC, N1, N2, N3, N4
  18.  
  19. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  20.      ILAENV is called from the LAPACK routines to choose problem-dependent
  21.      parameters for the local environment.  See ISPEC for a description of the
  22.      parameters.
  23.  
  24.      This version provides a set of parameters which should give good, but not
  25.      optimal, performance on many of the currently available computers.  Users
  26.      are encouraged to modify this subroutine to set the tuning parameters for
  27.      their particular machine using the option and problem size information in
  28.      the arguments.
  29.  
  30.      This routine will not function correctly if it is converted to all lower
  31.      case.  Converting it to all upper case is allowed.
  32.  
  33.  
  34. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  35.      ISPEC   (input) INTEGER
  36.              Specifies the parameter to be returned as the value of ILAENV.  =
  37.              1: the optimal blocksize; if this value is 1, an unblocked
  38.              algorithm will give the best performance.  = 2: the minimum block
  39.              size for which the block routine should be used; if the usable
  40.              block size is less than this value, an unblocked routine should
  41.              be used.  = 3: the crossover point (in a block routine, for N
  42.              less than this value, an unblocked routine should be used) = 4:
  43.              the number of shifts, used in the nonsymmetric eigenvalue
  44.              routines = 5: the minimum column dimension for blocking to be
  45.              used; rectangular blocks must have dimension at least k by m,
  46.              where k is given by ILAENV(2,...) and m by ILAENV(5,...)  = 6:
  47.              the crossover point for the SVD (when reducing an m by n matrix
  48.              to bidiagonal form, if max(m,n)/min(m,n) exceeds this value, a QR
  49.              factorization is used first to reduce the matrix to a triangular
  50.              form.)  = 7: the number of processors
  51.              = 8: the crossover point for the multishift QR and QZ methods for
  52.              nonsymmetric eigenvalue problems.
  53.  
  54.      NAME    (input) CHARACTER*(*)
  55.              The name of the calling subroutine, in either upper case or lower
  56.              case.
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. IIIILLLLAAAAEEEENNNNVVVV((((3333FFFF))))                                                          IIIILLLLAAAAEEEENNNNVVVV((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      OPTS    (input) CHARACTER*(*)
  75.              The character options to the subroutine NAME, concatenated into a
  76.              single character string.  For example, UPLO = 'U', TRANS = 'T',
  77.              and DIAG = 'N' for a triangular routine would be specified as
  78.              OPTS = 'UTN'.
  79.  
  80.      N1      (input) INTEGER
  81.              N2      (input) INTEGER N3      (input) INTEGER N4      (input)
  82.              INTEGER Problem dimensions for the subroutine NAME; these may not
  83.              all be required.
  84.  
  85.              >= 0: the value of the parameter specified by ISPEC < 0:  if
  86.              ILAENV = -k, the k-th argument had an illegal value.
  87.  
  88. FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
  89.      The following conventions have been used when calling ILAENV from the
  90.      LAPACK routines:
  91.      1)  OPTS is a concatenation of all of the character options to
  92.          subroutine NAME, in the same order that they appear in the
  93.          argument list for NAME, even if they are not used in determining
  94.          the value of the parameter specified by ISPEC.
  95.      2)  The problem dimensions N1, N2, N3, N4 are specified in the order
  96.          that they appear in the argument list for NAME.  N1 is used
  97.          first, N2 second, and so on, and unused problem dimensions are
  98.          passed a value of -1.
  99.      3)  The parameter value returned by ILAENV is checked for validity in
  100.          the calling subroutine.  For example, ILAENV is used to retrieve
  101.          the optimal blocksize for STRTRI as follows:
  102.  
  103.          NB = ILAENV( 1, 'STRTRI', UPLO // DIAG, N, -1, -1, -1 )
  104.          IF( NB.LE.1 ) NB = MAX( 1, N )
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.